#pragma once

GLuint ShaderProgram(const char* vertexShaderFile, const char* fragmentShaderFile);

// very small and simple classes
// can safely be used with pass by value
class UIPoint
{
public:
	UIPoint();
	UIPoint(const UIPoint& p);
	UIPoint(int x, int y){x_ = x; y_ = y;}
	UIPoint& operator= (const UIPoint& p);
	~UIPoint(){}
	// Setters
	void setX(int x){x_ = x;}
	void setY(int y){y_ = y;}
	// Getters
	int getX()const{return x_;}
	int getY()const{return y_;}
private:
	int x_;
	int y_;
};
class UISize
{
public:
	UISize();
	UISize(const UISize& s);
	UISize(int w, int h){w_ = w; h_ = h;}
	UISize& operator= (const UISize& s);
	~UISize(){}
	// Setters
	void setWidth(int w){w_ = w;}
	void setHeight(int h){h_ = h;}
	// Getters
	int getWidth()const{return w_;}
	int getHeight()const{return h_;}
private:
	int w_;
	int h_;
};
